/*
 * @lc app=leetcode.cn id=686 lang=cpp
 *
 * [686] 重复叠加字符串匹配
 */

// @lc code=start
class Solution
{
public:
    int repeatedStringMatch(string a, string b)
    {
        //两个字符串a,b计算a重叠多少次后的字符串能包括b
        //初步思路 先字符串b看是否包括a 歪日 这不是字符串查找吗
        //然后往前往后推

        //上面的思路太复杂了
        //看了题解 因为重叠后的字符串长度一定大于等于a的时候才有可能包含
        //所以先复制到a的长度大于等于b 然后查找b 如果有 返回 没有n+1次再找一次
        //这次如果没有找到就返回-1
        int res = 1;
        string aa = a;
        while (aa.size() < b.size())
        {
            aa = aa + a;
            res++;
        }
        if (aa.find(b) != aa.npos)
        {
            return res;
        }
        else
        {
            aa = aa + a;
            res++;
            if (aa.find(b) != aa.npos)
            {
                return res;
            }
            else
            {
                return -1;
            }
        }
        return -1;
    }
};
// @lc code=end
